package com.filldream.fastboot.base.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.Version;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 系统日志
 * </p>
 *
 * @author RickSun
 * @since 2021-11-17
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class SysLog implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 日志名称
     */
    private String description;
    /**
     * 来源,具体含义参考代码规定
     */
    private Integer resourceType;
    /**
     * 日志类型
     */
    private String logType;
    /**
     * 请求方法全命名
     */
    private String method;

    private String methodType;
    /**
     * 请求参数
     */
    private String params;
    /**
     * 请求IP
     */
    private String requestIp;
    /**
     * 请求时间，单位毫秒
     */
    private Long time;
    /**
     * 请求人名称
     */
    private String username;
    /**
     * 请求地址
     */
    private String address;
    /**
     * 请求浏览器类型
     */
    private String browser;
    /**
     * 例外情况
     */
    private String exceptionDetail;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 关联ID
     */
    private Long linkId;
    /**
     * 请求唯一ID
     */
    private String requestId;

    public SysLog(String logType, Long time) {
        this.logType = logType;
        this.time = time;
    }

    /**
     * @author RickSun
     * @Description 空参构造方法，因为有一个自定义构造方法后若不添加空参构造方法则mybatis plus无法直接映射SysLog
     **/
    public SysLog() {
        super();
    }
}
